iT邦幫忙

2022 iThome 鐵人賽

DAY 8
1

大家好,今天要來和大家聊聊數位簽章是什麼

昨天我們已經介紹了雜湊函數(hash functions),如果還沒看過的可以先去看一下,先把雜湊搞懂再來看這篇會比較好理解(Day 7 : 觀念篇 - 密碼學裡的雜湊函數是什麼?它跟加密差在哪?

那我們先來講數位簽章是什麼


數位簽章(Digital Signature)

通常我們簽立一份文件時,都會簽名+蓋手印來證明這是我本人簽署的
那如果把情況搬來網路上,該怎麼確認這是你本人簽的?在傳輸過程中有沒有被 hacker 竄改過?

於是,數位簽章就出現啦
它是透過RSA加密文件給對方,再讓對方檢驗這到底是不是你本人傳輸過來的,所以也稱數位簽名


證明

數位簽章可以證明:

  • 誰簽章的
  • 簽什麼文件(內容)
  • 何時簽章的

所以數位簽章有「無法」被偽造、竄改等特性,同時他也存在不可否認性
因為這份簽章全世界只有「你一個人」可以簽出來,所以它既無法被偽造,你也無法否認曾經簽過這份文件

至於竄改簽章的部分,其實是「可以」被竄改的
但遭到竄改後,它內容檢驗就不會通過了,因為簽章可以檢驗「檔案的完整性」,所以也可以直接說「簽章無法遭到竄改


步驟

那使用數位簽章進行傳輸的步驟為何呢?

  • 傳送方對「欲傳送的明文訊息」進行雜湊,得到一串雜湊值
  • 傳送方使用他自己的「私密金鑰」,對這段雜湊值進行加密,其結果就是「簽章」
  • 傳送方將「欲傳送的明文訊息」和「簽章」做結合,傳送給接收方
  • 接收方使用傳送方的「公開金鑰」,對「接收到的簽章」進行解密,得到原始訊息經雜湊後,所得到的雜湊值
  • 接收方對「接收到的明文訊息」進行雜湊,得到第二個雜湊值
  • 接收方將這兩個雜湊值進行比對
    • 如果相同,代表本次傳輸「沒有」遭到 hacker 毀損或加料(中間人攻擊),驗簽章成功
    • 如果不相同,代表本次傳輸「有」遭到中間人攻擊,驗簽章失敗

例子

這樣講太抽象了,這裡我們來舉個例子,假設今天海綿寶寶想傳 mail 問章魚哥要不要去抓水母

這時海綿寶寶對 mail 進行了「簽章」,證明這封 mail 是他「本人」傳的
而章魚哥收到 mail 時要進行「驗簽章」,確認這封 mail 是「海綿寶寶本人」傳的
https://ithelp.ithome.com.tw/upload/images/20220923/20141088BZYRdF1hho.png

首先,海綿寶寶會先對這封 mail 的「明文訊息」進行雜湊,並得到一串雜湊值
https://ithelp.ithome.com.tw/upload/images/20220923/20141088C8g55BS0Ca.png

得到雜湊值後,海綿寶寶要使用他自己的「秘密金鑰」,對這段雜湊值進行「加密
https://ithelp.ithome.com.tw/upload/images/20220923/20141088IAK2Myxri8.png

而這段雜湊值進行加密後,得到的就是「簽章
https://ithelp.ithome.com.tw/upload/images/20220924/201410887ZBZCtjwxD.png

這時海綿寶寶把「原本的明文訊息」和「簽章」放在一起,透過網路傳送給章魚哥
https://ithelp.ithome.com.tw/upload/images/20220923/20141088EK2aIEubL4.png

章魚哥收到 mail 後,拿海綿寶寶的「公開金鑰」對簽章進行「解密
https://ithelp.ithome.com.tw/upload/images/20220923/20141088ywnjInXsWK.png

解密後,就會拿到「原本的明文訊息」經雜湊後,所得到的雜湊值
https://ithelp.ithome.com.tw/upload/images/20220923/20141088H4R6RqOOMW.png

這時章魚哥再對 mail 裡的「明文訊息」進行雜湊,得到第二個雜湊值
https://ithelp.ithome.com.tw/upload/images/20220923/20141088X5Y9mVOQs2.png

再將兩段的雜湊值進行比對,如果相同,代表此封mail的內容沒有遭到毀損或加料,驗簽章成功。此時就能確定,那段明文訊息是海綿寶寶「本人」傳給章魚哥的

如果不相同,代表這封mail有被hacker動過手腳,驗簽章失敗
https://ithelp.ithome.com.tw/upload/images/20220923/20141088mTPV5uUpel.png

所以嚴格來說,簽章的加密不是「加密」,或者說不是為了「隱密」,因為使用公開金鑰就能解開了,所以簽章每個人都能解密來看


以上就是今天的介紹
希望大家看完能對數位簽章的概念、傳輸模式更加了解


上一篇
Day 7 : 觀念篇 - 密碼學裡的雜湊函數是什麼?它跟加密差在哪?
下一篇
Day 9 : 觀念篇 - 網路上常說的 cookie 是什麼東西?又該如何刪除它呢?
系列文
做IT必備的資安觀念!手把手帶你攻防實戰30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言